#ifndef CARGADORDEARCHIVOS_H_
#define CARGADORDEARCHIVOS_H_
#include "funcionesSueltas.h"
#include <map>
#include <set>
#include <bitset>
#include <string>
using namespace std;

typedef struct _termino{
	int index;
	int frecuencia;
	bool sonAparicones;
	bitset<180318>* bitSetDeFragmentos;
} termino_t ;

typedef struct _dic{
	map<string , termino_t> mapa;
	size_t total;
}diccionario_t ;

typedef map<int, string> diccionarioPorIndice_t ;

typedef map<int, map<int, map<int, int> > > mapaDeTrigramas_t ;

void cargarDiccionarioAMedias(diccionario_t* dic);

void cargarDiccionario(diccionario_t* dic, diccionarioPorIndice_t* dicPorIndice, set<int>* testSet);

void cargarPalabrasEIndicesEnDiccionarios(diccionario_t* dic,diccionarioPorIndice_t* dicPorIndice,set<int>* testSet);
void cargarAparicionesEnDiccionario(diccionario_t* dic,diccionarioPorIndice_t* dicPorIndice,set<int>* testSet);

void cargarTrigramas(set<int>* testSet, mapaDeTrigramas_t* mapaDeTrigramas);

bool palabraApareceEnDiccionario(string palabra, diccionarioPorIndice_t* dicPorInd);

#endif /* CARGADORDEARCHIVOS_H_ */
